package com.muyu.danmo.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.DateUtils;
import com.muyu.danmo.domain.DanmoInformationCopy1;
import com.muyu.danmo.domain.DanmoPersonalPictures;
import com.muyu.danmo.mapper.DanmoInformationCopy1Mapper;
import com.muyu.danmo.mapper.DanmoPersonalPicturesMapper;
import com.muyu.danmo.req.DanmoPortfolioReq;
import com.muyu.danmo.service.IDanmoPersonalPicturesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 个人信息作品图片集Service业务层处理
 *
 * @author yangle
 * @date 2024-09-21
 */
@Service
public class DanmoPersonalPicturesServiceImpl extends ServiceImpl<DanmoPersonalPicturesMapper, DanmoPersonalPictures> implements IDanmoPersonalPicturesService
{
    @Autowired
    private DanmoPersonalPicturesMapper danmoPersonalPicturesMapper;

    /**
     * 查询个人信息作品图片集
     *
     * @param id 个人信息作品图片集主键
     * @return 个人信息作品图片集
     */
    @Override
    public DanmoPersonalPictures selectDanmoPersonalPicturesById(Long id)
    {
        DanmoPersonalPictures danmoPersonalPictures = danmoPersonalPicturesMapper.selectDanmoPersonalPicturesById(id);
        return danmoPersonalPictures;
    }

    /**
     * 查询个人信息作品图片集列表
     *
     * @param danmoPersonalPictures 个人信息作品图片集
     * @return 个人信息作品图片集
     */
    @Override
    public List<DanmoPersonalPictures> selectDanmoPersonalPicturesList(DanmoPersonalPictures danmoPersonalPictures)
    {
        return danmoPersonalPicturesMapper.selectDanmoPersonalPicturesList(danmoPersonalPictures);
    }

    /**
     * 新增个人信息作品图片集
     *
     * @param danmoPersonalPictures 个人信息作品图片集
     * @return 结果
     */
    @Override
    public int insertDanmoPersonalPictures(DanmoPersonalPictures danmoPersonalPictures)
    {
        danmoPersonalPictures.setCreateTime(DateUtils.getNowDate());
        return danmoPersonalPicturesMapper.insertDanmoPersonalPictures(danmoPersonalPictures);
    }

    /**
     * 修改个人信息作品图片集
     *
     * @param danmoPersonalPictures 个人信息作品图片集
     * @return 结果
     */
    @Override
    public int updateDanmoPersonalPictures(DanmoPersonalPictures danmoPersonalPictures)
    {
        danmoPersonalPictures.setUpdateTime(DateUtils.getNowDate());
        return danmoPersonalPicturesMapper.updateDanmoPersonalPictures(danmoPersonalPictures);
    }

    /**
     * 批量删除个人信息作品图片集
     *
     * @param ids 需要删除的个人信息作品图片集主键
     * @return 结果
     */
    @Override
    public int deleteDanmoPersonalPicturesByIds(Long[] ids)
    {
        return danmoPersonalPicturesMapper.deleteDanmoPersonalPicturesByIds(ids);
    }

    /**
     * 删除个人信息作品图片集信息
     *
     * @param id 个人信息作品图片集主键
     * @return 结果
     */
    @Override
    public int deleteDanmoPersonalPicturesById(Long id)
    {
        return danmoPersonalPicturesMapper.deleteDanmoPersonalPicturesById(id);
    }

    @Override
    public List<DanmoPersonalPictures> selectDanmoPersonalPictures(DanmoPortfolioReq danmoPortfolioReq) {
        return danmoPersonalPicturesMapper.selectDanmoPersonalPictures(danmoPortfolioReq);
    }
@Autowired
private DanmoInformationCopy1Mapper danmoInformationCopy1Mapper;
    @Override
    public List<DanmoPersonalPictures> selectinquireList(DanmoPersonalPictures danmoPersonalPictures) {
        List<DanmoPersonalPictures> danmoPersonalPictures1 = danmoPersonalPicturesMapper.selectinquireList(danmoPersonalPictures);
        List<Long> ids = new ArrayList<>();

        for (DanmoPersonalPictures personalPictures : danmoPersonalPictures1) {
            Long informationId = personalPictures.getInformationId();
            if (informationId != null) {
                ids.add(informationId);
            }
        }

        List<DanmoInformationCopy1> danmoInformationCopy1List = danmoInformationCopy1Mapper.selectList(ids);
        // 使用 Map 优化匹配过程
        Map<Long, DanmoInformationCopy1> informationMap = new HashMap<>();
        for (DanmoInformationCopy1 danmoInformationCopy1 : danmoInformationCopy1List) {
            informationMap.put(danmoInformationCopy1.getId(), danmoInformationCopy1);
        }

        for (DanmoPersonalPictures personalPictures : danmoPersonalPictures1) {
            Long informationId = personalPictures.getInformationId();
            if (informationId != null && informationMap.containsKey(informationId)) {
                personalPictures.setDanmoInformationCopy1List(informationMap.get(informationId));
            }
        }

        return danmoPersonalPictures1;
    }
}
